Home automation refers to the use of computer and information technology to control home systems, such as lighting, HVAC, audio-visual, smoke detection, security, and shading, among others. Using specialized hardware, even household appliances can be monitored and controlled automatically. A feature of science fiction for many years, home automation has only recently become practical, both from a technological and cost perspective. This is due in part to the rapid advancement of information technology.
A sophisticated home automation system may include sensors (e.g., of temperature, of light, of motion, etc.), controllers (e.g., a general-purpose personal computer, a dedicated automation controller, etc.), and actuators (e.g., motorized valves, switches, etc.). The system may also include a human-machine interface device that enables a resident of the home to interact with the system. The interface can be a specialized terminal or an application (“app”) running on a smart phone or tablet computer. The various system devices communicate over dedicated wiring, or over a wired network, or wirelessly, using one or more protocols.
FIG. 1 depicts home automation system 100 in the prior art. System 100 comprises: sensor nodes 101-1 through 101-G, wherein G is a positive integer; actor nodes 102-1 through 102-H, wherein H is a positive integer; and controller 110. The aforementioned elements are logically interconnected as shown.
Sensor nodes 101-1 through 101-G include one or more of: motion sensors, temperature sensors, light sensors, and air quality sensors. Actor nodes 102-1 through 102-H are home appliances that include one or more of: lamps, possibly with adjustable brightness and/or color; window blinds that can be opened and closed; and HVAC (heating, ventilation, and air conditioning) systems. Using such sensor and actor nodes, home automation system 100 is capable of triggering and acting on certain conditions as a function of sensor readings, such as turning on lights when motion is detected or when ambient light is low, controlling HVAC systems in response to temperature variations, and so forth. Controller 110 coordinates and executes the actions to be taken by one or more of the actor nodes, based on i) the input signals received from one or more of the sensor nodes and ii) one or more memorized states.
The simplest form of controlling an actor node is turning it on or off. The situation, however, gets more complicated where there are many appliances to control and where the controlling the appliances requires setting more than two (i.e., “on” or “off”) states, such as adjusting the brightness of a lamp or the color of a lamp, or both. Indeed, where there are multiple lamps in a room, each with a dimmer, controlling them individually is not convenient.
To simplify the control of a group of nodes in a given space, it is convenient to define presets for each appliance, associated with certain scenarios. Each such group of presets is sometimes referred to as a “scene”, and the actor appliances participate in a scene. For example, there are three lamps with dimmers in a room. Four scenes are predefined: “television-watching”, “reading”, “dining”, and “partying”. A user conveniently engages one of the scenes, and, as a result, she does not have to select dimmer levels for each lamp every time.
Conventional implementations of scenes are based on a centralized controller, such as controller 110, in which the controller remembers the values of scene settings for each lamp and each scene. Engaging a scene means sending to each actor a setting, such as a power level in the case of each lamp. FIG. 2 depicts a message flow diagram in the prior art, featuring the sending of a setting to each of lamps 102-1 through 102-3, both of which are actor nodes. When controller 110 determines that the brightness of lamp 102-1 needs to be changed, the controller transmits message 201 specifically to lamp 102-1. Similarly, when controller 110 determines that the brightness of lamp 102-2 or 102-3 needs to be changed, based on the user selecting a scene, the controller transmits message 202 or 203 specifically to lamp 102-2 or 102-3, respectively. Later, when controller 110 determines that the brightness of lamp 102-2 needs to be changed again, based on the user selecting a different scene than before, the controller transmits message 204 specifically to lamp 102-2. In other words, a different message is required to be transmitted for each lamp and for each change in brightness.